Serial digital data is frequently transmitted using a self-clocking encoding. The basic idea behind these self-clocking codes is to guarantee that a certain minimum number of digital "events" (pulses or transitions in level) occur within the digital waveform. These "guaranteed" events can then be used to establish and reconstruct frequency and phase of the clocking signals which were used to encode and transmit the data.
"Double frequency" encoding is the simplest of the self-clocked encodings and has many variants; two of these variants are known as "frequency modulated" (FM) and "biphase". FM and biphase encodings differ slightly, but have as a common characteristic the guarantee that at least one, but no more than two digital events occur per bit cell in the digital waveform. A bit cell is that portion of the waveform which is generated by one cycle of the basic digital clock and contains a single binary 0 or binary 1. The presence or absence of the second (non-guaranteed) event depends upon the data being encoded.
Examples of FM and biphase encoding are illustrated in FIGS. 1 and 2, respectively. In the given example of FM (FIG. 1), pulses are the events of interest. In the given example of biphase, transitions of level are the events of interest.
In FM encoding (FIG. 1), a binary 1 is represented by two consecutive events occurring one-half bit cell apart, with a bit cell defined as the time between two guaranteed transitions. Binary 0 is represented by a single event at the beginning of a bit cell.
In biphase encoding (FIG. 2), the guaranteed event is a transition in level occurring in the middle of each bit cell. A binary 1 is distinguished from a binary 0 by the relative phase of the waveform surrounding the guaranteed transition. Thus, in the example shown in FIG. 2, a binary 1 is represented by and a binary 0 is represented by . Transitions occurring between the guaranteed transitions are required whenever two consecutive bit cells carry the same binary data value.
As will be obvious to those skilled in the art, an FM pulse event waveform may be converted to an equivalent FM transition-event waveform by using the FM pulse event waveform to toggle a flip-flop, and then using an output of the flip-flop, as the transition-event waveform. All biphase waveforms are of the transition-event type since the phase of the waveform is crucial to the successful recovery of the encoded data. Therefore, the preferred embodiment of the present invention is designed to be driven by transition-event waveforms only.
Recovering data from a double frequency encoding depends on the ability to recognize the guaranteed transitions and to synchronize some timing circuit with these recognized guaranteed transitions. The output of the timing circuit can then be used, along with some additional logic, to extract data from the waveform. In the prior art, various timing circuits have been used for this purpose. Two commonly used techniques are briefly discussed below.
In the first prior art technique, monostable multivibrators triggered by the guaranteed transitions define a "window" during an interval when a non-guaranteed transition may occur. The pulses produced by the monostables are then used to extract data from the waveform. Technique 1 has the advantage of simplicity, but suffers from wide variations in timing common with monostables. Further, technique 1 is quite susceptible to spurious operation induced by noise in the incoming waveform and is limited to usage with relatively low frequency signals.
In the second prior art technique, a variable frequency oscillator is synchronized to the incoming frequency by means of a phase-locked loop. The output of the oscillator is then used to extract data from the incoming waveform. Technique 2 eliminates the timing tolerance problem associated with technique 1 and is much less prone to noise induced failure. However, technique 2 is substantially more complex than technique 1.
In certain applications where units containing circuits exemplified by techniques 1 to 2 are placed in series, such as in a ring network, the clocking signals derived from the incoming waveform are used to construct an outgoing waveform for transmission to the next unit downline. In such a configuration, "jitter" (viz., timing uncertainty) in the output waveform must be minimized since the jitter may cascade and be amplified by passage through several units in series. Phase locked loops, such as those of technique 2, always exhibit frequency jitter. The amount of jitter is traded off against capture time (time to go from initial "unlocked" state to "locked") and lock range (input frequency range within which the phase-locked loop will eventually enter the locked condition). Since less jitter means less tracking ability and hence greater sensitivity to component value tolerances, technique 2 may be unsuitable for applications in which many units, each containing the extraction circuit, are cascaded in series. Using technique 1 it is possible to design a circuit which exhibits no jitter beyond that present in the incoming waveform, but one that suffers from the aforementioned drawbacks.